package io.gitee.sfch.chunmi.service.system;

import io.gitee.sfch.chunmi.entity.Pageable;
import io.gitee.sfch.chunmi.entity.Pagination;
import io.gitee.sfch.chunmi.controller.system.form.SystemUserAddForm;
import io.gitee.sfch.chunmi.controller.system.request.SystemUserPageRequest;
import io.gitee.sfch.chunmi.dao.system.entity.SystemUser;
import org.springframework.validation.annotation.Validated;

/**
 * 系统用户服务
 */
public interface SystemUserService {

    /**
     * 根据用户名查找用户
     *
     * @param username 用户名
     */
    SystemUser findUser(String username);

    /**
     * 分页查询
     *
     * @param pageRequest 查询参数
     * @param pageable 分页参数
     */
    Pagination<SystemUser> findPage(SystemUserPageRequest pageRequest, Pageable pageable);

    /**
     * 新增用户
     *
     * @param addForm 新增表单
     */
    void add(@Validated SystemUserAddForm addForm);

    /**
     * 判定用户是否存在
     *
     * @param username 用户名
     */
    boolean hasUser(String username);
}
